<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArPixelDevice&lt; DataObject &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArPixelDevice.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArPixelDevice-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArPixelDevice&lt; DataObject &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Holds data from a sensor that provides data arranged in a 2d array.  
 <a href="classArPixelDevice.html#details">More...</a></p>

<p><code>#include &lt;ArPixelDevice.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a01761e3235bc82ceccd5caa68ceded56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01761e3235bc82ceccd5caa68ceded56"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a01761e3235bc82ceccd5caa68ceded56">ArPixelDevice</a> (int x_size, int y_size, double x_fov, double y_fov, const char *name)</td></tr>
<tr class="memdesc:a01761e3235bc82ceccd5caa68ceded56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base Constructor. <br /></td></tr>
<tr class="separator:a01761e3235bc82ceccd5caa68ceded56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607d4a60cad027a8b0bd016dd51aa5a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a607d4a60cad027a8b0bd016dd51aa5a4"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a607d4a60cad027a8b0bd016dd51aa5a4">getName</a> (void)</td></tr>
<tr class="memdesc:a607d4a60cad027a8b0bd016dd51aa5a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the device. <br /></td></tr>
<tr class="separator:a607d4a60cad027a8b0bd016dd51aa5a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d0e15eacef3e8d94a1454414c794903"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d0e15eacef3e8d94a1454414c794903"></a>
DataObject ***&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a0d0e15eacef3e8d94a1454414c794903">getRawSensorData</a> (void)</td></tr>
<tr class="memdesc:a0d0e15eacef3e8d94a1454414c794903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the raw sensor data. <br /></td></tr>
<tr class="separator:a0d0e15eacef3e8d94a1454414c794903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f430a587215207de314359d650d3d9a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f430a587215207de314359d650d3d9a"></a>
DataObject ***&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a3f430a587215207de314359d650d3d9a">getRawSensorXYZ</a> (void)</td></tr>
<tr class="memdesc:a3f430a587215207de314359d650d3d9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the raw XYZ data. <br /></td></tr>
<tr class="separator:a3f430a587215207de314359d650d3d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2b4a1300d1dceaf6f25d2bef4b07662"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2b4a1300d1dceaf6f25d2bef4b07662"></a>
DataObject *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#ab2b4a1300d1dceaf6f25d2bef4b07662">getSensorData</a> (int x, int y)</td></tr>
<tr class="memdesc:ab2b4a1300d1dceaf6f25d2bef4b07662"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the sensor at the (x,y) coords. <br /></td></tr>
<tr class="separator:ab2b4a1300d1dceaf6f25d2bef4b07662"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a908923f418bf207e65c1cb5cee53c03a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a908923f418bf207e65c1cb5cee53c03a"></a>
DataObject *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a908923f418bf207e65c1cb5cee53c03a">getSensorXYZ</a> (int x, int y)</td></tr>
<tr class="memdesc:a908923f418bf207e65c1cb5cee53c03a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the xyz array of the sensor at the (x,y) pizels. <br /></td></tr>
<tr class="separator:a908923f418bf207e65c1cb5cee53c03a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71583b3614c46f55dfcb64683816976a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71583b3614c46f55dfcb64683816976a"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a71583b3614c46f55dfcb64683816976a">getXDimension</a> (void)</td></tr>
<tr class="memdesc:a71583b3614c46f55dfcb64683816976a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the dimension of the grid in the x direction. <br /></td></tr>
<tr class="separator:a71583b3614c46f55dfcb64683816976a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0daa1c15f80f5e994df18bf138c8d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc0daa1c15f80f5e994df18bf138c8d7"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#afc0daa1c15f80f5e994df18bf138c8d7">getXFOV</a> (void)</td></tr>
<tr class="memdesc:afc0daa1c15f80f5e994df18bf138c8d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the X direction Field of View, in degrees. <br /></td></tr>
<tr class="separator:afc0daa1c15f80f5e994df18bf138c8d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87331b4df0116708f9288c6a80384c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af87331b4df0116708f9288c6a80384c5"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#af87331b4df0116708f9288c6a80384c5">getYDimension</a> (void)</td></tr>
<tr class="memdesc:af87331b4df0116708f9288c6a80384c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the dimension of the grid in the y direction. <br /></td></tr>
<tr class="separator:af87331b4df0116708f9288c6a80384c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5162bcde6c96dca465963a4117ece247"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5162bcde6c96dca465963a4117ece247"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a5162bcde6c96dca465963a4117ece247">getYFOV</a> (void)</td></tr>
<tr class="memdesc:a5162bcde6c96dca465963a4117ece247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the Y direction Field of View, in degrees. <br /></td></tr>
<tr class="separator:a5162bcde6c96dca465963a4117ece247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae715397d1ac30e8e67924727907dd988"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae715397d1ac30e8e67924727907dd988"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#ae715397d1ac30e8e67924727907dd988">lockDevice</a> ()</td></tr>
<tr class="memdesc:ae715397d1ac30e8e67924727907dd988"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock this device. <br /></td></tr>
<tr class="separator:ae715397d1ac30e8e67924727907dd988"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84736070112d9b82ee01df1c5c75d733"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84736070112d9b82ee01df1c5c75d733"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a84736070112d9b82ee01df1c5c75d733">tryLockDevice</a> ()</td></tr>
<tr class="memdesc:a84736070112d9b82ee01df1c5c75d733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to lock this device. <br /></td></tr>
<tr class="separator:a84736070112d9b82ee01df1c5c75d733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a561f0030e2f000e1b818774ce3ec1f42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a561f0030e2f000e1b818774ce3ec1f42"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#a561f0030e2f000e1b818774ce3ec1f42">unlockDevice</a> ()</td></tr>
<tr class="memdesc:a561f0030e2f000e1b818774ce3ec1f42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock this device. <br /></td></tr>
<tr class="separator:a561f0030e2f000e1b818774ce3ec1f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe0807548f94d153ec931e17e0e6be2d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe0807548f94d153ec931e17e0e6be2d"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPixelDevice.html#abe0807548f94d153ec931e17e0e6be2d">~ArPixelDevice</a> ()</td></tr>
<tr class="memdesc:abe0807548f94d153ec931e17e0e6be2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base destructor. <br /></td></tr>
<tr class="separator:abe0807548f94d153ec931e17e0e6be2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a2c4f237da84504d3dd8b89ea181338fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c4f237da84504d3dd8b89ea181338fe"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>allocateSensorDataMemory</b> ()</td></tr>
<tr class="separator:a2c4f237da84504d3dd8b89ea181338fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa27838e1500f5b1f1a3d5e4a2d6ee165"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa27838e1500f5b1f1a3d5e4a2d6ee165"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>allocateSensorXYZMemory</b> ()</td></tr>
<tr class="separator:aa27838e1500f5b1f1a3d5e4a2d6ee165"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a47e7336cc6e1aa166d4abb685da1ed77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47e7336cc6e1aa166d4abb685da1ed77"></a>
<a class="el" href="classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myDeviceMutex</b></td></tr>
<tr class="separator:a47e7336cc6e1aa166d4abb685da1ed77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f008a5c82d942fbe54e5992e2af1bef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f008a5c82d942fbe54e5992e2af1bef"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>myName</b></td></tr>
<tr class="separator:a9f008a5c82d942fbe54e5992e2af1bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6377895c88e9c0d3ef8a3e3991ac1850"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6377895c88e9c0d3ef8a3e3991ac1850"></a>
DataObject ***&#160;</td><td class="memItemRight" valign="bottom"><b>mySensorData</b></td></tr>
<tr class="separator:a6377895c88e9c0d3ef8a3e3991ac1850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad115b15ee6b6cac4c4d4127d01d78ad1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad115b15ee6b6cac4c4d4127d01d78ad1"></a>
DataObject ***&#160;</td><td class="memItemRight" valign="bottom"><b>mySensorXYZ</b></td></tr>
<tr class="separator:ad115b15ee6b6cac4c4d4127d01d78ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b802c07db5a82cc25c029c6b77ef30e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b802c07db5a82cc25c029c6b77ef30e"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myXFOV</b></td></tr>
<tr class="separator:a7b802c07db5a82cc25c029c6b77ef30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa003a600b9a8d817bfea8e78934ff00b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa003a600b9a8d817bfea8e78934ff00b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myXSize</b></td></tr>
<tr class="separator:aa003a600b9a8d817bfea8e78934ff00b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a339ac088bee1de0259b62031c5e9c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a339ac088bee1de0259b62031c5e9c7"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myYFOV</b></td></tr>
<tr class="separator:a4a339ac088bee1de0259b62031c5e9c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c91abcbd254a0b5343e21e02ccfcd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40c91abcbd254a0b5343e21e02ccfcd7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myYSize</b></td></tr>
<tr class="separator:a40c91abcbd254a0b5343e21e02ccfcd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class DataObject&gt;<br />
class ArPixelDevice&lt; DataObject &gt;</h3>

<p>Holds data from a sensor that provides data arranged in a 2d array. </p>
<p>Subclasses are used for specific sensor implementations, such as the ArFocusPixelDevice for the Focus Robotics nDepth stereocamera.</p>
<p>The data are arranged in an x,y grid, with the origin being in the upper left corner, from the perspective of the robot. It's in a row-major format.</p>
<p>The Field of View (FOV) is assumed to be centered with zero being the center of the area, such that the permitted x angles are between ((-x_fov/2) to (+x_fov/2)) and ((-y_fov/2) to (+y_fov/2)). Negative angles are to the lower left of the grid from the perspective of the robot.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_size</td><td>dimension of data grid in x direction</td></tr>
    <tr><td class="paramname">y_size</td><td>dimension of data grid in y direction</td></tr>
    <tr><td class="paramname">x_fov</td><td>Field of View of sensor in X direction (angle in degrees)</td></tr>
    <tr><td class="paramname">y_fov</td><td>Field of View of sensor in Y direction (angle in degrees)</td></tr>
    <tr><td class="paramname">name</td><td>the name of this device </td></tr>
  </table>
  </dd>
</dl>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>ArPixelDevice.h</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArPixelDevice.html">ArPixelDevice</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
